1. Field of the Invention
The present invention relates to graphical user interfaces (GUIs) and operating systems of computing systems and, more particularly, but not by way of limitation, to a method, article of manufacture, and apparatus for resizing windows.
2. Background Information and Description of Related Art
Many conventional operating systems, such as the Windows(TM), OS/2(TM), and AIX(TM) operating systems, utilize graphical user interface (GUI) desktop environments to organize computer objects. A GUI allows a user to graphically view and manipulate those objects as icons using a mouse or pointer. Conventional GUIs examine the object's identifier (e.g., name), search a resource file for the identifier, and then display an icon representing the object according to the information stored in the resource file. The resource file contains information about each window, such as any initial value, the default color of the window, the default size of the window, and the window's location on the display screen. Typically, the GUI reads the resource file once per session. When the user double-clicks over an icon, the GUI opens the object (e.g., starts an application), displays a window and contents therein, and automatically transfers focus to that window. When a window receives focus, the GUI transfers all input information, such as key strokes from a keyboard, to the object/application running in that window.
Objects may be simultaneously opened, creating a stack of windows that the GUI displays in a default size and location on the display screen. When the user single clicks over a window not positioned on top of the stack of windows, the GUI transfers focus from the window on the top of the stack to the new window. When a window receives focus, the GUI places that window on top of the stack of windows and, as previously mentioned, queues any key strokes by the user from a keyboard to the object/application running in that window.
Conventional GUIs provide three states for an object-maximized, default, and iconized (i.e., minimized). As previously mentioned, when a user opens a window, the GUI displays the window using a pre-determined size (i.e., a default state) and automatically transfers focus to it. Using a mouse, the user can manually change the pre-determined size by adjusting the position of the window's border edges. However, the process of manually resizing the window is tedious and time consuming.
Conventionally, the GUI provides two buttons (please see maximize button 224 and minimize button 226 in FIG. 2) in a window's title bar that allow the user to toggle between a maximized state and an iconized state. When a user maximizes a window, the window occupies all screen real estate, thereby obscuring the view of other windows. On the other hand, the iconized state occupies little space, but does not display the contents of its running application. Obviously, this is a disadvantageous state when the user needs to view the contents of a running application.
Disadvantages and limitations of the above described system occur because the desktop is typically cluttered with many open default windows that occupy large amounts of real estate, preventing the user from viewing several desired windows. For example, if a user desires to cut and paste information from one window into several windows, the user must have those windows open with full view. To do so, the user typically opens each window in a default state and then manually resizes them so that they fit on the display screen. Again, this process is tedious and time consuming.
Accordingly, there is a need for an enhanced user interface that automatically resizes (e.g., reduces the size of) all windows not having focus and, further, allows the user to easily and selectively re-size active windows without iconizing them.